package com.vic.mapper.base;

import com.vic.entity.vo.ResponseVO;;

import com.vic.enums.ResponseCodeEnum;;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: Vic Ly
 */
// T bean对象 P　查询参数
public interface BaseMapper<T,P> {
    /**
     * 插入 insert()
     */
    Integer insert(@Param("bean") T t);

    /**
     * 插入或更新 insertOrUpdate()
     */
    Integer insertOrUpdate(@Param("bean")T t);

    /**
     * 批量插入 insertBatch()
     */
    Integer insertBatch(@Param("list")List<T> list);

    /**
     * 批量插入或更新 insertOrUpdateBatch()
     */
    Integer insertOrUpdateBatch(@Param("list")List<T> list);

    /**
     * 根据参数查询集合 selectList()
     */
    List<T> selectList(@Param("query") P p);

    /**
     * 根据集合查询数量 selectCount()
     */
    Integer selectCount(@Param("query") P p);
}
